home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fifty: Elektronik
/
FIFTY Elektronik (PS_Computer_Vertrieb).iso
/
ps8
/
fty1026
/
lasidrc.hlp
< prev
next >
Wrap
Text File
|
1994-01-14
|
19KB
|
442 lines
≡≡
Introduction
Introduction
The program LASIDRC.EXE is a design rule checking program that performs
various layout design rule checks by making 2-dimensional bitmaps of
drawing layers and then doing logical operations on the bitmaps. The
program has some major changes and improvements over earlier versions of
LASI design rule checkers:
1. The program reads a Check File which contains parameters and operators
that perform one or more checks. You can write your own Check File,
and devise any type of design rule checks that you may want, within
the limits of the available operations.
2. The program now can find "near miss errors" where one area misses
being to be connected to another area in a drawing by a single
smallest drawing unit.
3. The program can be interrupted at any check within the processing of a
Check File, the state will be saved, and checking will continue in the
area where it was suspended if LASILL is started again.
The program works on a cell drawing in the default directory (drawing
directory), and scans the cell in small areas, performing its sequence of
operations. The results may be displayed on a monitor, may be stored in a
disk file, or may be printed on a line printer. Automatic or manual
hardcopies of the display may be made using the same hardcopy programs
that LASI.EXE uses.
Running LASIDRC
Running LASIDRC
To run LASIDRC you first need to write a Check File as explained below.
This file contains small "programs" that tell LASIDRC what to do.
Make the drawing directory the default directory and type "LASIDRC".
LASIDRC will come up in a setup display, providing it finds the drawing
files: FORM.DBD, CELLS4.DBD and CONSTS4.DBD. It will also allocate memory
for LASI objects and its bitmaps. If any of this fails, it will tell you
so and will return to DOS.
When the Setup Display comes up, you can enter or change any parameters
by moving through the parameters using the up, down, left, right or ENTER
keys and then typing in any value. The values will be changed if any
characters are typed and the location is then moved. You can step around
and around until you have the parameters as you want them. The parameters
are as follows:
1. The "Name of Cell to DRC" is the main cell you want to check. Note
that this also checks any lesser cells in the main cell.
2. The "Name of Check File" is the name of the Check File that LASIDRC
will use. It will always have the extension ".CHK", which will
automatically be added to the name. This may include a path.
3. The "Starting Check Number" is the test in the Check File where you
want the checking to start. This allows you to skip over some tests.
4. The "Finishing Check Number is the last test you want to do. This
allows some trailing tests to be omitted.
5. The Summary File switch. You may make a Summary File (always named
LASIDRC.SUM). This is an appended file, which will keep information on
all tests until it is erased.
6. The Summary Print switch. You may also print the summary information
on a printer as the program runs. Alternately, you can just print the
Summary File when it is done.
7. The Enable switches. There are two enables for the PAUSE and HCPY
operators. You can turn these operators on and off as you please
without editing the Check File.
8. The Resolution and Distance Parameters. The resolution and distance in
the check file may be overridden if you want. These values stay in
place until new RESOLUTION= or DISTANCE= parameters are encountered in
the Check File in any of the following tests. Leaving these to blank
(press the Delete key) causes them to default to the minimum scale
unit and zero.
9. The Starting Point. You may start checking areas anywhere by writing
the bottom-left coordinates in the setup. This allows you to go to an
certain area in a cell without doing all the previous areas. Leaving
these parameters blank causes them to be ignored at first and then be
set to the coordinates of the last area being checked.
The setup is slightly "smart"; it checks and adjusts parameters to
conform to LASIDRC's checking rules. Units are automatically added to any
dimensions. You will also notice that where "y" or "n" is wanted,
anything but "y" will set "n".
To start checking, press F10. Once you start checking, the parameters are
saved in the LASIDRC.SET file and are returned when LASIDRC is run again.
When LASIDRC runs a short status is displayed which moves up and down the
screen as a screen saving feature.
You may jump to the NEXT CHECK by pressing F10 again.
You may abort checking by pressing ESC. You will go back to the Setup
Display. When this is done, the last area position and the check number
will be saved in the setup. If you start LASIDRC.EXE again this
information will be restored.
Press ESC to go from the Setup to DOS.
Note: There may be a short delay if ESC is pressed, be patient.
Pressing F2 in Setup will read the contents of the Check File as it is
seen by LASIDRC. That is, the defaults for parameters will be listed and
any operators that have been disabled by making them into comments will
not be shown.
Pressing F3 in Setup will shell to DOS. You can run your favorite editor
to make changes to the Check File, for example. Once in a while there
will not be enough contiguous memory available to run a program; in that
case you need to exit LASIDRC and go back to DOS. You may check the
available memory by pressing F4.
If a Check File is read completely, the program will terminate normally
and go back to DOS. Certain setup parameters will be set to their default
values.
The Check File
Check File Format
A Check File consists of one or more test sequences or checks arranged in
blocks that contain parameters and operators. Each block starts with a
TITLE parameter and is ended with an OPERATORS parameter. The OPERATORS
parameter is always followed by a set of OPERATORS that are enclosed in
brace characters "{" and "}".
Characters may be upper or lowercase. The format is as follows:
TITLE=aaaa<nl> (40 char. max.) []=optional
[RESOLUTION=nnnn<nl>] (in physical units) <nl>=newline (CRLF)
[DISTANCE=nnnn<nl>] (in physical units)
[LOCATION=xxxx,yyyy<nl>] (in physical units)
OPERATORS=<nl>
{<nl>
[OPERATOR<nl>]
.
.
.
}<nl>
TITLE=bbbb<nl>
etc.
Check Parameters:
TITLE= is the name of a particular test, and must be present. If no new
title is read, the Check File is considered finished.
RESOLUTION= is the physical size of each bit in a bitmap. This will be
snapped to multiples of the basic units used in the drawing. Making
this larger speeds up checking, but, details smaller than this number
may be lost. This defaults to the previous setting if not present.
DISTANCE= is the distance by which bitmaps will be expanded when spacing
checks are being done. It also affect the position is the areas being
checked. This defaults to the previous setting.
LOCATION= sets the point on a cell of where to start scanning. This is
the bottom-left corner of the area to be scanned. This does not default
to any previous values.
OPERATORS= begins the sequence of operator mnemonics that do the actual
checking. The block of operators always starts with "{" and ends with
"}". Each operator is written on a new line (CR-LF) and may contain
arguments separated by a comma ",". Operators are read character by
character starting after "=". The right brace "}" terminates the
operations and the present check. There is space for a maximum of 50
operators in the sequence.
The variables above are recognized by only their first two characters and
may be upper or lower case. For example, "op=" is equivalent to
"OPERATORS=".
A semicolon may be added to an operator line, which has the effect of
making everything to the right a comment. You may "turn off" and operator
by putting a ";" as the first character in the line. This lets you leave
temporary operators in place in the file while you are working out a
test.
Working Maps
The program maintains several internal 640x640 bitmaps. Only two are
available to the user. These are the R (results) and S (secondary) maps.
All tests are done by making and moving layer maps into the R and S
working maps, where the various operators can work on them.
R and S maps are arranged in a 2-map "stack" as shown below:
PUSH layer map ────┐
┌─────────┐
│ │ R │<─┐<── R Operator
Map Stack ├─│───────┤ │
│ S │──┴─── RS Operator
└─────────┘
To do any operations on maps you first push a layer map onto the map
stack. When a map is pushed into R, the contents of R are first pushed
into S.
Certain operators work with the R map and some work with both the R and S
maps. The results are always placed in the R map.
Operators
MAP,layer
This creates a layer map file on the hard disk, which may be retrieved
by other operators. Layer is a number from 0 to 64.
Layer 0 is a special layer, will store the R map for later use at any
stage of a checking sequence.
You must ALWAYS use the MAP operator to generate a layer map if you are
going to use that layer map later.
PUSH,layer
Retrieves a layer map from the hard disk and pushes the map onto the
map stack. The contents of the R map are moved to the S map. The
contents of the S map are lost. PUSH,0 retrieves and pushes a MAP,0
that may have been previously stored.
NOTR, ANDRS, ORRS, XORRS
These are the logical operators that do just what they indicate. The
results are placed in the R map and the S map remains unchanged.
SETR,CLRR
These are rarely used operators that set all bits of R to "1" or "0"
respectively.
DBLR
This doubles the bits in X and Y directions so that single bits may be
displayed better. This is used automatically by EXPR (below).
EXPR[,offset]
This is the single map expand operator. It performs an iterative
octagonal (see below) expansion on the R map. Each iteration expands
the pattern by ONE RESOLUTION UNIT. The results are placed in the R map
and the original R map is lost.
The results represent a pattern produced by single "0s" in the map as
the "1s" merge with each expansion pass.
The optional offset is a correction that may be used if found
necessary. The offset is the number of iterations (or resolution units)
to be subtracted from the expansion so that the distance parameter
gives the correct results.
EXPRS[,offset]
This expands the R and S maps using an iterative octagonal expansion,
and places the results in the R map. Each iteration is one resolution
unit. The original R and S maps are lost. Since there are two separate
maps, the result is the intersection of the maps as they expand.
TESTR
This is a conditional branching operator that tests if any bits are set
to "1" in the R map. If there are any "1s" the sequence of operators
continues. If there are no results, the rest of the operators are
skipped and the sequence of operators starts over again in the next
drawing area. This is used to determine is there is anything to print
or display.
DSPR,color index,sparse modulus
This displays the R map as a rectangular pattern on the monitor screen.
The color index is the usual integerr (0 to 15) used by the PC video to
set a color: 0=black, 1= blue, 2=green, etc.
The sparse modulus is a integer that allows only those pixels whose X
and Y position divided by the modulus that leaves a remainder of 0 to
be displayed. This "thins out" the filled patterns to give a better
display or print. For all pixels, the modulus is 1; for every other
pixel, the modulus is 2, etc.
DSP,map,color index,sparse modulus
This is the same as DSPR except it displays a stored map. Use this to
display the layers as a background when displaying any results.
PAUSE
This produces a pause after a display so that you can examine the
screen. Without it, LASIDRC would go on to the next area to be checked.
This is enabled by the Setup switch.
HCPY
This calls the hardcopier automatically to produce a picture of the
screen after any results are displayed. If the Print Summary Setup
switch is set this does not work, since it would disrupt the summary
printing. This must also be enabled by the Setup switch.
An Example
If included in the LASI files, the demonstration layout (compressed in
DEMO.EXE) contains a sample Check File named DEMO.CHK. This has been
written to work with the demonstration, but can serve as an example of
how to write a file. Examining this file should make the preceding
information much clearer.
Octagonal Expansion
Octagonal Expansion
When an expansion is done, an iterative process is used to enlarge the
map patterns. With each pass the pattern is enlarged by one bit by
shifting it in each of the four orthogonal directions (+x,-x,+y,-y). It
is also shifted diagonally, on the average, .707 of the time. This
produces an octagonal pattern if the original pattern is a single point.
* * * * *
Octagonal single point expansion * * * * * * *
after four passes * * * * * * * * *
* * * * * * * * *
* * * * X * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
Optimizing Parameters
Optimizing Parameters
Resolution can be made as small as 1 basic unit used in a drawing.
Making the Resolution larger allows checking to be done much faster
because larger pieces of a drawing can be checked at a time and less
iterations are necessary when checking. The time required to check is
roughly in inverse proportion to the 3rd power of the Resolution. That
is, if you halve your Resolution it will run about 8 times faster. Unless
you have a very fast computer, the highest Resolution is best used on
small cells or for checks that involve small dimensions. For example,
contact coverage or checking for small gaps in metal runs might run at
the smallest Resolution.
Making Resolution too large can cause errors to be missed because details
cannot be resolved smaller than that size and roundoffs may occur.
However, scanning for gross errors can quickly be done using a larger
Resolution.
The Distance parameter will affect the test time, since each iteration of
an expansion takes about the same amount of time.
Distance will also affect the size and position of the areas being
checked. Distance can be set to 0, but a small correction, depending on
the Resolution, will be made so that checked areas will overlap slightly.
Missed and False Errors
Missed and False Errors
When checking distances, if programmed correctly, LASIDRC should always
find an flag distances <= (Distance - Resolution). For example, a 10 um
Distance and a Resolution of .5um should find anything less than or equal
to 9.5um. Note that as the Resolution approaches zero, this distance
approaches the Distance.
This does not mean that all distances will be accepted if they are
greater than (Distance - Resolution). For 45 deg. diagonal distances,
there can be an uncertainty that is less than +/- half the Resolution,
due partly to the way that LASIDRC works and due partly to numerical
roundoff problems. For angles that are in a range centered around odd
multiples of 22.5 deg. ( 22.5, 67.5, etc.) there is an exaggeration of
the expansion distance. This may flag oddly shaped objects. Since LASIDRC
expands areas using an octogonal pattern, these exaggerations correspond
to the octogon vertex peaks or about an 8 percent exaggeration at most.
Since LASIDRC looks for single bits when doing a single layer expansion,
once in a while on odd shapes, the map can produce single bit extensions
or notches. LASIDRC will find these and will flag them, even though they
are an artifact. You should examine these and see if there really is
anything wrong. In fact, the way that LASIDRC works often picks out
patterns that are not good layout practice.
LASIDRC works in such a way that sharp corners tend to be rounded, just
as actual photomasking and etching might do. Keep this in mind when
setting the Distance parameter. For example, the distance between two
adjacent corners will be seen by LASIDRC as a little more than the actual
tip to tip distance.
The method by which LASIDRC works is sensitive to gross errors which are
well beyond the actual flagging threshold. It is virtually impossible for
LASIDRC to miss these.
LASIDRC will find "near miss" errors in which there is a gap between
filled areas that is greater than or equal to the value set as the
Resolution. Set the Resolution to the smallest physical unit (1 basic
drawing unit), and set the Distance to some value large enough to find
all small gaps, but small enough to let LASIDRC run quickly. On strange
shapes, LASIDRC will sometimes flag small notches. Ignore these if they
cause no trouble.
Disclaimer
Disclaimer
The LASIDRC.EXE program is furnished on an "as is" basis. LASIDRC will
make a "best effort" to call to attention any possible layout errors.
Experience should confirm that it doesn't miss much. However, the author
or anyone distributing the program cannot assume responsibility for how
the program is used, how it is programmed or for the results of its use.
The program cannot be absolutely guaranteed to find all instances in a
layout that may result in incorrect function of an integrated circuit or
other device. LASIDRC is to be considered as a valuable aid to actual
visual inspection and the users own knowledge.